package com.h6.crm.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.h6.crm.entity.Project;
import com.h6.crm.entity.SysUser;
import com.h6.crm.util.pojo.dto.FollowRecordDto;
import com.h6.crm.util.pojo.dto.QuoteDto;
import com.h6.crm.util.pojo.vo.QueryProjectVO;
import com.h6.crm.util.pojo.vo.QueryQuoteReocrdVO;
import com.h6.crm.util.pojo.vo.QuoteVO;
import com.h6.crm.util.pojo.vo.ReportProjectVO;
import com.h6.crm.util.pojo.vo.SaveFollowVO;
import com.h6.crm.util.pojo.vo.UpdateProjectStatusVO;

public interface ProjectService extends IService<Project> {

    /**
     * 查询项目
     *
     */
    IPage<Project> queryProjectList(QueryProjectVO projectVo);

    /**
     * 查询项目名称
     *
     */
    List<String> queryNameList(String projectName);

    /**
     * 报备项目
     *
     */
    Boolean reportProject(ReportProjectVO reportProjectVO, SysUser user);

    /**
     * 修改项目状态
     *
     */
    Boolean updateProjectStatus(Long projectId, UpdateProjectStatusVO projectVO);

    /**
     * 查询项目详细
     *
     */
    Project getProjectDetailById(Long projectId);

    /**
     * 跟进
     *
     */
    void saveFollow(Long projectId, SaveFollowVO saveFollowVo);

    /**
     * 获取跟进记录
     *
     */
    List<FollowRecordDto> queryFollowReocrdList(Long projectId);

    /**
     * 报价
     *
     */
    void quote(Long projectId, QuoteVO quoteVO, SysUser user);

    /**
     * 获取报价记录
     *
     */
    List<QuoteDto> queryQuoteReocrdList(Long projectId, QueryQuoteReocrdVO recordVo);

}
